
//导入自定义js模块
let myParam = require('./params.js');

//一、使用require引入http模块，获取http请求对象
const http = require('http');
//二、设置服务器信息
//设置ip地址
const hostname = '127.0.0.1';
//设置端口号
const port = 3000;
//三、搭建服务
const server = http.createServer((request,response)=>{
    //准备数据
    let data = [
        {"xh":"1001","xm":"zhangsan","nj":"一年级"},
        {"xh":"1002","xm":"lisi","nj":"二年级"}
    ];

    //console.log(decodeURIComponent(request.url));

    //响应逻辑

    //设置响应头信息
    response.setHeader('Content-Type', 'text/plain;charset=utf-8' );
    //设置允许跨域
    response.setHeader("Access-Control-Allow-Origin","*");

    if(request.url.includes("?")){//有参
        //"/?xm=123&nj=123"

        /*
        //封装参数对象
        // let paramObj = {};
        // let arr = decodeURIComponent(request.url).substring(2).split("&"); //[xm=123, nj=123]
        // for(let i=0; i<arr.length; i++){
        //     //前台传的数据中有参数属性,paramObj就会有
        //     paramObj[arr[i].split("=")[0]] = arr[i].split("=")[1];
        // }
        // console.log(paramObj);
        */
        //调用封装参数的js函数
        let paramObj = myParam.getParams(request.url);

        //响应结果
        let resultObj=[];
        //根据不同条件情况，封装不同响应数据
        for(let item of data){
            if(paramObj.xm && paramObj.nj != "-1"){//两个条件都有时
                if(item.xm.includes(paramObj.xm) && item.nj == paramObj.nj){
                    resultObj.push(item);
                }
            }else if(paramObj.xm){//只有姓名条件有
                if(item.xm.includes(paramObj.xm)){
                    resultObj.push(item);
                }
            }else if(paramObj.nj != "-1"){//只有年级条件有
                if(item.nj == paramObj.nj){
                    resultObj.push(item);
                }
            }else{//没有条件
                resultObj.push(item);
            }
        }  
        response.end(JSON.stringify(resultObj));
    }else{//无参
        //响应所有数据
        response.end(JSON.stringify(data));
    }

})
//四、监听服务
//让服务器能实时获取请求
server.listen(port,hostname,()=>{
    //在服务端输出
    console.log(`Node.js Server is running on http://${hostname}:${port}  `);
});